#!/bin/sh
# PCP QA Test No. 1415
# Exercising all versions of MMV ondisk form using mmvdump.
#
# Copyright (c) 2018 Red Hat.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

status=0	# success is the default!
files1="$PCP_TMP_DIR/mmv/test-$$ $PCP_TMP_DIR/mmv/notest-$$ $PCP_TMP_DIR/mmv/simple-$$"
files2="$PCP_TMP_DIR/mmv/test2-$$ $PCP_TMP_DIR/mmv/notest2-$$ $PCP_TMP_DIR/mmv/simple2-$$"
files3="$PCP_TMP_DIR/mmv/test3-$$ $PCP_TMP_DIR/mmv/notest3-$$ $PCP_TMP_DIR/mmv/simple3-$$"

_cleanup()
{
    $sudo rm -f $files1 $files2 $files3
    _restore_pmda_mmv
    rm -f $tmp.*
}

$sudo rm -rf $files1 $files2 $files3
trap "_cleanup; exit \$status" 0 1 2 3 15

_filter_mmvdump()
{
    sed \
	-e "s,simple-$$,simple-PID,g" \
	-e "s,simple2-$$,simple2-PID,g" \
	-e "s,simple3-$$,simple3-PID,g" \
	-e "s,test-$$,test-PID,g" \
	-e "s,test2-$$,test2-PID,g" \
	-e "s,test3-$$,test3-PID,g" \
	-e "s,notest-$$,notest-PID,g" \
	-e "s,notest2-$$,notest2-PID,g" \
	-e "s,notest3-$$,notest3-PID,g" \
	-e "s,^Process.*= $pid1,Process    = PID,g" \
	-e "s,^Process.*= $pid2,Process    = PID,g" \
	-e "s,^Process.*= $pid3,Process    = PID,g" \
	-e "s,^Process.*= $pid4,Process    = PID,g" \
	-e "s,^Process.*= $pid5,Process    = PID,g" \
	-e "s,^Process.*= $pid6,Process    = PID,g" \
	-e "s,^Process.*= $pid7,Process    = PID,g" \
	-e "s,^Process.*= $pid8,Process    = PID,g" \
	-e "s,^Process.*= $pid9,Process    = PID,g" \
	-e "s,^Generated.*= [0-9][0-9]*,Generated  = TIMESTAMP,g" \
	-e 's/interval = [0-9][0-9]*/interval = TIME/' \
	-e 's/eggs"] = [0-9][0-9]* (value=[0-9][0-9]*/eggs"] = N (value=N/' \
	-e "s,^MMV file.*= $PCP_TMP_DIR,MMV file   = \$PCP_TMP_DIR,g" \
    #end
}

# real QA test starts here
_prepare_pmda_mmv

echo $$ > $seq_full

src/mmv_simple simple-$$ &
pid1=$!
src/mmv2_simple simple2-$$ &
pid2=$!
src/mmv3_simple simple3-$$ &
pid3=$!
src/mmv_genstats test-$$ &
pid4=$!
src/mmv2_genstats test2-$$ &
pid5=$!
src/mmv3_genstats test3-$$ &
pid6=$!
src/mmv_nostats notest-$$ &
pid7=$!
src/mmv2_nostats notest2-$$ &
pid8=$!
src/mmv3_nostats notest3-$$ &
pid9=$!
wait

echo && echo == Version 1 interfaces
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/simple-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/test-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/notest-$$ | _filter_mmvdump

echo && echo == Version 2 interfaces
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/simple2-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/test2-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/notest2-$$ | _filter_mmvdump

echo && echo == Version 3 interfaces
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/simple3-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/test3-$$ | _filter_mmvdump
$PCP_PMDAS_DIR/mmv/mmvdump $PCP_TMP_DIR/mmv/notest3-$$ | _filter_mmvdump

status=0
exit
